<?php

namespace Admin\Model;

use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Db\Adapter\Adapter;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\Sql\Select;
use Zend\Stdlib\DateTime;
use Zend\Session\Container;


class TintucTable extends AbstractTableGateway {

    protected $table = 'tintuc';

    public function __construct(Adapter $adapter) {
        $this->adapter = $adapter;
        $this->resultSetPrototype = new ResultSet();
        $this->resultSetPrototype->setArrayObjectPrototype(new Tintuc());

        $this->initialize();
    }

    public function fetchAll(Select $select = null) {
        if (null === $select)
            $select = new Select();
        $select->from($this->table,array('*'))
				->join(
					'nguoidung',
					'tintuc.tacgia = nguoidung.id',
					array('hoten'))
				->join(
					'chuyenmuc',
					'tintuc.chuyenmuc = chuyenmuc.id',
					array('tenchuyenmuc'));
        $resultSet = $this->selectWith($select);
        $resultSet->buffer();
        return $resultSet;
    }

    public function getTintuc($id) {
        $id = (int) $id;
        $rowset = $this->select(array('id' => $id));
        $row = $rowset->current(); 
        return $row;
    }
	public function capnhat($id,$tieude,$mota,$noidung,$hinhanh,$chuyenmuc,$trangthai,$tinnoibat,$hinhanhmoi)
	{
		//$date = new \DateTime();
		//$date = $date->format('d-m-Y');
		date_default_timezone_set('Asia/Ho_Chi_Minh');
		$str_search = array ( 
		"Mon", 
		"Tue", 
		"Wed", 
		"Thu", 
		"Fri", 
		"Sat", 
		"Sun" 
		); 
		$str_replace = array ( 
		"Thứ hai", 
		"Thứ ba", 
		"Thứ tư", 
		"Thứ năm", 
		"Thứ sáu", 
		"Thứ bảy", 
		"Chủ nhật" 
		);
		$timenow = gmdate("D, d-m-Y", time() + 7*3600); 
		$date = str_replace( $str_search, $str_replace, $timenow); 
		$now = getdate(); 
    	$currentTime = $now["hours"] . ":" . $now["minutes"]; 
		$date = $date." ".$currentTime;
		
		$sessionUser = new Container('user');
		$tacgia = $sessionUser->userid;
		
		if($hinhanhmoi!="")
		{
			$data = array(
				'tieude' => $tieude,
				'mota' => $mota,
				'noidung' => $noidung,
				'hinhanh' => $hinhanhmoi,
				'ngaycapnhat' => $date,
				'linkrutgon' => $this->stripUnicode($tieude),
				
				'chuyenmuc' => $chuyenmuc,
				'trangthai' => $trangthai,
				'tinnoibat' => $tinnoibat
			);
		}
		else{
			$data = array(
				'tieude' => $tieude,
				'mota' => $mota,
				'noidung' => $noidung,
				//'hinhanh' => $hinhanh,
				'ngaycapnhat' => $date,
				'linkrutgon' => $this->stripUnicode($tieude),
				
				'chuyenmuc' => $chuyenmuc,
				'trangthai' => $trangthai,
				'tinnoibat' => $tinnoibat
			);	
		}
            if ($this->getTintuc($id)) {
				
					$this->update($data, array('id' => $id));
				
            } else {
                throw new \Exception('Không tồn tại');
            }
		
	}

    public function saveTintuc(Tintuc $tintuc) {
		//$date = new \DateTime();
		//$date = $date->format('d-m-Y');
		
		date_default_timezone_set('Asia/Ho_Chi_Minh');
		$str_search = array ( 
		"Mon", 
		"Tue", 
		"Wed", 
		"Thu", 
		"Fri", 
		"Sat", 
		"Sun" 
		); 
		$str_replace = array ( 
		"Thứ hai", 
		"Thứ ba", 
		"Thứ tư", 
		"Thứ năm", 
		"Thứ sáu", 
		"Thứ bảy", 
		"Chủ nhật" 
		);
		$timenow = gmdate("D, d-m-Y", time() + 7*3600); 
		$date = str_replace( $str_search, $str_replace, $timenow); 
		$now = getdate(); 
    	$currentTime = $now["hours"] . ":" . $now["minutes"]; 
		$date = $date." ".$currentTime;
		
		$sessionUser = new Container('user');
		$tacgia = $sessionUser->userid;
		
		
        

        $id = (int) $tintuc->id;
        if ($id == 0) {
			
            	$data = array(
					'tieude' => trim($tintuc->tieude),
					'mota' => $tintuc->mota,
					'noidung' => $tintuc->noidung,
					'hinhanh' => $tintuc->hinhanh,
					'ngaydang' => $date,
					'ngaycapnhat' => $date,
					'tacgia' => $tacgia,
					'linkrutgon' => $this->stripUnicode(trim($tintuc->tieude)),
					'soluotxem' => '0',
					'chuyenmuc' => $tintuc->chuyenmuc,
					'trangthai' => $tintuc->trangthai,
					'tinnoibat' => $tintuc->tinnoibat,
				);	
                $this->insert($data);
            
        } else {
			
			$data = array(
				'tieude' => trim($tintuc->tieude),
				'mota' => $tintuc->mota,
				'noidung' => $tintuc->noidung,
				'hinhanh' => $tintuc->hinhanh,
				'ngaycapnhat' => $date,
				'linkrutgon' => $this->stripUnicode(trim($tintuc->tieude)),
				
				'chuyenmuc' => $tintuc->chuyenmuc,
				'trangthai' => $tintuc->trangthai,
				'tinnoibat' => $tintuc->tinnoibat
			);	
            if ($this->getTintuc($id)) {
				
					$this->update($data, array('id' => $id));
				
            } else {
                throw new \Exception('Không tồn tại');
            }
        }
    }

    public function deleteTintuc($id) {
        $this->delete(array('id' => $id));
    }
	public function xoaTintuc($id) {
		
        $this->delete('id IN (' . $id . ')');
    }
	public function phathanhTintuc($id) {
		
        $this->update(array('trangthai'=>"Hiển thị"), 'id IN (' . $id . ')');
    }
	public function anTintuc($id) {
		
        $this->update(array('trangthai'=>"Ẩn"), 'id IN (' . $id . ')');
    }
	public function noibatTintuc($id) {
		
        $this->update(array('tinnoibat'=>"Nổi bật"), 'id IN (' . $id . ')');
    }
	public function binhthuongTintuc($id) {
		
        $this->update(array('tinnoibat'=>"Bình thường"), 'id IN (' . $id . ')');
    }
	public function themTintuc($tieude,$mota,$noidung,$hinhanh,$chuyenmuc,$trangthai,$tinnoibat) {
		//$date = new \DateTime();
		//$date = $date->format('d-m-Y');
		
		date_default_timezone_set('Asia/Ho_Chi_Minh');
		$str_search = array ( 
		"Mon", 
		"Tue", 
		"Wed", 
		"Thu", 
		"Fri", 
		"Sat", 
		"Sun" 
		); 
		$str_replace = array ( 
		"Thứ hai", 
		"Thứ ba", 
		"Thứ tư", 
		"Thứ năm", 
		"Thứ sáu", 
		"Thứ bảy", 
		"Chủ nhật" 
		);
		$timenow = gmdate("D, d-m-Y", time() + 7*3600); 
		$date = str_replace( $str_search, $str_replace, $timenow); 
		$now = getdate(); 
    	$currentTime = $now["hours"] . ":" . $now["minutes"]; 
		$date = $date." ".$currentTime;
		
		$sessionUser = new Container('user');
		$tacgia = $sessionUser->userid;
		
		
			
			$data = array(
				'tieude' => trim($tieude),
				'mota' => $mota,
				'noidung' => $noidung,
				'hinhanh' => $hinhanh,
				'ngaydang' => $date,
				'ngaycapnhat' => $date,
				'linkrutgon' => $this->stripUnicode(trim($tieude)),
				'tacgia' => $tacgia,
				'chuyenmuc' => $chuyenmuc,
				'trangthai' => $trangthai,
				'tinnoibat' => $tinnoibat,
				'soluotxem' => '0',
			);	
            
					$this->insert($data);
				
            
        
    }
	//kiem tra ton tai
	public function check_exists($tieude,$id)
	{
		//$rowset = $this->select(array('title' => $title));
        //$row = $rowset->current();
		$resultSet = $this->select(array('tieude = "'.$tieude.'"', 'id != "'.$id.'"'));
    	$row = $resultSet->current();
        return $row;
		
	}
	function stripUnicode($str){
	  if(!$str) return false;
	   $unicode = array(
		  'a'=>'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|ầ|ẩ|ẫ|ậ|Á|À|Ả|Ã|Ạ|Ă|Ắ|Ặ|Ằ|Ẳ|Ẵ|Â|Ấ|Ầ|Ẩ|Ẫ|Ậ|A',
		  'd'=>'đ|Đ|D',
		  'e'=>'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ|É|È|Ẻ|Ẽ|Ẹ|Ê|Ế|Ề|Ể|Ễ|Ệ|E',
		  'i'=>'í|ì|ỉ|ĩ|ị|Í|Ì|Ỉ|Ĩ|Ị|I',
		  'o'=>'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ|Ó|Ò|Ỏ|Õ|Ọ|Ô|Ố|Ồ|Ổ|Ỗ|Ộ|Ơ|Ớ|Ờ|Ở|Ỡ|Ợ|O',
		  'u'=>'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự|Ú|Ù|Ủ|Ũ|Ụ|Ư|Ứ|Ừ|Ử|Ữ|Ự|U',
		  'y'=>'ý|ỳ|ỷ|ỹ|ỵ|Ý|Ỳ|Ỷ|Ỹ|Ỵ|Y',
		  'b'=>'B',
		  'c'=>'C',
		  'f'=>'F',
		  'g'=>'G',
		  'h'=>'H',
		  'j'=>'J',
		  'k'=>'K',
		  'm'=>'M',
		  'n'=>'N',
		  'p'=>'P',
		  'q'=>'Q',
		  'r'=>'R',
		  's'=>'s',
		  't'=>'T',
		  'v'=>'V',
		  'w'=>'W',
		  'x'=>'X',
		  'z'=>'Z',
 
	   );
	foreach($unicode as $nonUnicode=>$uni) $str = preg_replace("/($uni)/i",$nonUnicode,$str);
	$str = str_replace( ' ', '-', $str );
	$str = str_replace( ';', '', $str );
	$str = str_replace( ':', '', $str );
	$str = str_replace( '(', '', $str );
	$str = str_replace( ')', '', $str );
	$str = str_replace( ',', '', $str );

	return $str;
	}


}
